/**************************************************************************/
/***                                                                    ***/
/**************************************************************************/

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**************************************************************************/
/***                                                                    ***/
/**************************************************************************/

package rpt.bd.cenario;

/**
 *
 * @author Roberto
 */

/**************************************************************************/
/***                                                                    ***/
/**************************************************************************/

public class CConjuntoDadosBdCenario extends CConjuntoDadosBd {

    protected CCenarioBdEdicao fCenarioBdEdicao;
    protected CPainelBdCenarioEdicao fPainelBd;

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public CConjuntoDadosBdCenario(final CCenarioBdEdicao aCenarioBdEdicao) {
        super(aCenarioBdEdicao.getGlobal(),aCenarioBdEdicao.getPertinenciaBd(),false,false);
        fCenarioBdEdicao = aCenarioBdEdicao;
        preparar(true);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    protected void preparar(final boolean aPreparar) {
        if (aPreparar) {
            fPainelBd = (CPainelBdCenarioEdicao)fCenarioBdEdicao.getPainelBd();
            super.preparar(aPreparar);
        }
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public CCenarioBdEdicao getCenarioBdEdicao() {
        return fCenarioBdEdicao;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/
/*
    @Override
    public void recarregarConjuntoDadosBd() {
        fConjuntoDadosBd.removeAllElements();
        carregarConjuntoDadosBd();
    }
*/
    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public String getQueryConjuntoDadosBd() {
        return fCenarioBdEdicao.getPertinenciaBd().getQuerySelecionarCamposRegistroBd(1);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void sincronizarConjuntoDadosDetalhe(final CConjuntoDados aConjuntoDadosDetalhe) {
        super.sincronizarConjuntoDadosDetalhe(aConjuntoDadosDetalhe);
        if (aConjuntoDadosDetalhe instanceof CConjuntoDadosBdCenario) {
            final CCenarioBdEdicao c = ((CConjuntoDadosBdCenario)aConjuntoDadosDetalhe).getCenarioBdEdicao();
            final CGradeBdCenario g = c.getGrade();
            if (g != null) {
                g.prepararRegistroAtual();
                g.atualizar();
                g.autoResizeColWidth();
            }
        }
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoAntesInserirRegistro() {
        super.eventoAntesInserirRegistro();
        if (fPainelBd != null) fPainelBd.eventoAntesInserirRegistro();
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoDepoisInserirRegistro(CRegistro aRegistro) {
        super.eventoDepoisInserirRegistro(aRegistro);
        if (fPainelBd != null) fPainelBd.eventoDepoisInserirRegistro(aRegistro);
    }


    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoAntesGravarRegistro() {
        super.eventoAntesGravarRegistro();
        if (fPainelBd != null) fPainelBd.eventoAntesGravarRegistro();
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoDepoisGravarRegistro(
            final CRegistro aRegistro, 
            final EStatusOperacao aStatusOperacao, 
            final int vResultado) {
        super.eventoDepoisGravarRegistro(aRegistro,aStatusOperacao,vResultado);
        if (fPainelBd != null) fPainelBd.eventoDepoisGravarRegistro(aRegistro,aStatusOperacao,vResultado);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoAntesMoverRegistro() {
        super.eventoAntesMoverRegistro();
        if (fPainelBd != null) fPainelBd.eventoAntesMoverRegistro();
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    @Override
    public void eventoDepoisMoverRegistro(CRegistro aRegistro) {
        super.eventoDepoisMoverRegistro(aRegistro);
        if (fPainelBd != null) fPainelBd.eventoDepoisMoverRegistro(aRegistro);
    }

/**************************************************************************/
/***                                                                    ***/
/**************************************************************************/

}
